<?php
/**
 * All dynamic property class must implement this interface
 *
 *
 * @author Ishtiaque Shahrier <md.ishtiaque@newgenbd.net>
 * @package core
 * @subpackage libraries
 */
interface i_dynamic_prop {
    /**
     * Name of the property that will be added to the parent model
     * @return string
     */
    public function get_property_name();
    /**
     * This is the function where the content/data of the proper should be generated.
     * @return mixed
     */
    public function run(i_base_model $caller);
    /**
     * The owner model object for this property
     * @return i_base_model
     */
    public function get_model();
    /**
     * Tells the calling class if the run should be called again and again or just once.
     * @see run
     * @return bool
     */
    public function run_once();
}
?>
